github.com/0chain/gosdk@v1.17.11/docs/uml/download file.puml (about)

     1  @startuml
     2  participant "<size:20><&terminal></size> ./zbox download" as cli
     3  collections gosdk
     4  collections blobber
     5  
     6  alt not empty remotepath
     7  cli -> gosdk: GetAllocation(allocationID)
     8  cli -> gosdk: downloadFile()
     9  
    10  gosdk -> gosdk: check initialized allocation
    11  gosdk -> gosdk: check valid path
    12  gosdk -> gosdk: check number of blobbers
    13  gosdk -> gosdk: create download request
    14  gosdk -> gosdk: process download
    15  gosdk -> gosdk: create list request
    16  gosdk -> blobber: get file consensus from blobber
    17  gosdk -> gosdk: calculate number of bytes per shard
    18  
    19  group for startBlock < endBlock
    20  gosdk -> gosdk: download block
    21  gosdk -> gosdk: calculate startBlock
    22  end
    23  
    24  gosdk -> gosdk: check hash when the download request is not by block/partial
    25  gosdk -> cli: download completed and return
    26  
    27  else not empty authticket
    28  cli -> gosdk: GetAllocationFromAuthTicket(authticket)
    29  cli -> gosdk: InitAuthTicket(authticket)
    30  cli -> gosdk: downloadFile()
    31  
    32  gosdk -> gosdk: check initialized allocation
    33  gosdk -> gosdk: get auth ticket from authticket
    34  gosdk -> gosdk: check valid path
    35  gosdk -> gosdk: check number of blobbers
    36  gosdk -> gosdk: create download request
    37  gosdk -> gosdk: process download
    38  gosdk -> gosdk: create list request
    39  gosdk -> blobber: get file consensus from blobber
    40  gosdk -> gosdk: calculate number of bytes per shard
    41  
    42  group for startBlock < endBlock
    43  gosdk -> gosdk: download block
    44  gosdk -> gosdk: calculate startBlock
    45  end
    46  
    47  gosdk -> gosdk: check hash when the download request is not by block/partial
    48  gosdk -> cli: download completed and return
    49  end
    50  @enduml